package org.dxy.domain.port.repository;


import org.dxy.domain.model.aggregate.WorkOrder;

import java.util.Optional;

public interface IWorkOrderRepository {

    /**
     * 保存工单
     */
    boolean save(WorkOrder workOrder);

    /**
     * 根据ID查找工单
     */
    WorkOrder findById(Long workOrderId);

    /**
     * 根据工单编码查找工单
     */
    WorkOrder findByCode(String workOrderCode);

    /**
     * 工单码是否存在
     */
    boolean existsByCode(String workOrderCode);

    /**
     * 根据日期前缀获取最大序号
     * @param datePrefix 日期前缀，格式如 "WO-20250916-"
     * @return 最大序号，如果没有找到则返回0
     */
    int getMaxSequenceByDatePrefix(String datePrefix);

    void deleteById(Long aLong);
}
